1. Field of the Invention
The present invention relates generally to computer software interaction, and more particularly to event notification services for resource-constrained devices.
2. Description of Related Art
Smart cards and other resource-constrained devices provide various services for users via small, easily portable devices. For example, a user inserts a smart card 100 into a card acceptance device 120 such as a bank terminal, which in turn communicates with a remote device 130 that is running a remote application 131. The user completes a banking transaction via smart card 100 and bank terminal 120, removes smart card 100 from bank terminal 120, and retains smart card 100 for future transactions.
To provide a variety of services via smart card 100, smart card 100 typically supports multiple on-card applications, of which banking application 110 is one example. On-card applications generally refer to applications executed on the smart card. On-card applications not only execute on the smart card, but also can interact with one another to provide various services. In some cases, the on-card applications further interact with off-card applications. Off-card applications generally refer to applications executing on a device other than smart card 100.
To provide on-card applications, developers build and test programs using standard software development tools and environments and convert the programs into a form that is installed on smart card 100. For example, Java Card' technology enables programs written in the Java' programming language to be installed and executed on a variety of smart cards and other resource-constrained devices. (Java™ is a trademark of Sun Microsystems, Inc., of Santa Clara, Calif., U.S.)
To protect the services enabled by smart cards, the programs and operations underlying the transactions have associated security mechanisms such as firewalls that prevent one on-card application from accessing information in a context of another on-card application. Firewalls ensure that one application cannot access the data or code of another application unless that application has provided an interface for access, such as a shareable object interface.
The limited resources available on smart card 100 cannot support more generalized approaches for communications between each of the multiple applications or some subset of the multiple applications typically found on smart card 100. For example, if application 110 and another application on smart card 100 used an event driven system to communicate, it is necessary for application 110 to include any classes, etc., required to support the event driven system. Similarly, if the other application wants to use an event driven system, that application must include the classes, etc., required to support that event driven system. Since by definition resources on a resource-constrained device such as smart card 100 are limited, there is not sufficient storage for each application to support such an event driven system and so the implementation of such systems is not considered feasible.